/*
 * @(#)Constants.java $version 2010. 8. 11
 *
 * Copyright 2007-2010 NHN Corp. All rights Reserved. 
 * NHN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.nhncorp.usf.core;

/**
 * 공통 상수 정의
 *
 * @author Web Platform Development Team
 */
public class Constants {
    /**
     * 기본 수행 액션 식별자.
     */
    public static final String DEFAULT_ACTION_ID = "init";

    /**
     * {@link HttpServletRequest} 객체에 대한 참조 키
     */
    public static final String KEY_REQUEST_OBJECT = "system_request_key";

    /**
     * {@link HttpServletResponse} 객체에 대한 참조 키
     */
    public static final String KEY_RESPONSE_OBJECT = "system_response_key";

    /**
     * {@link HttpServletRequest} 에 저장될 {@link UserContext} 객체의 식별자.
     */
    public static final String ATTRIBUTE_USER_CONTEXT = "usercontext";

    /**
     * {@link HttpServletRequest} 에 저장될 {@link User} 객체의 식별자.
     */
    public static final String ATTRIBUTE_USER = "user";

    /**
     * Freemarker에 저장될 {@link HttpServletRequest} 객체의 식별자.
     */
    public static final String FREEMARKER_KEY_REQUEST = "Request";

    /**
     * Freemarker에 저장될 {@link HttpServletResponse} 객체의 식별자.
     */
    public static final String FREEMARKER_KEY_RESPONSE = "Response";

    /**
     * Action method의 식별자
     */
    public static final String ACTION_METHOD_SUFFRIX = ".x";

    /**
     * Dynamic configuration의 구분자
     */
    public static final String RUNTIME_XML = "_run.xml";

    /**
     * Page Parameter의 기본 이름
     */
    public static final String DEFAULT_PAGE_PARAM = "page";

    /**
     * Data Structure 에 Context 영역
     */
    public static final String CONTEXT_SCOPE = "context";

    /**
     * Runtime Configuration에서 사용하는 Parameter Map의 예약어
     */
    public static final String PARAM_ARG_NAME = "parameterMap";

    /**
     * Remote에서 발생하는 Error에 대한 코드값
     */
    public static final String KEY_ERROR_CODE = "errorcode";

    /**
     * exceptionData from BusinessObject
     */
    public static final String EXCEPTION_DATA = "exceptionData";

    /**
     * property name of cache.
     */
    public static final String CACHE_CONFIGURATION = "configuration";

    /**
     * 현재페이지 이동형 페이저
     */
    public static final String PAGER_TYPE_FLOAT = "float";

    /**
     * 현재페이지 고정형 페이저
     */
    public static final String PAGER_TYPE_FIXED = "fixed";

    public static final String USF_SERVICE_ERROR_CODE = "000"; //USF 뒤단에서 발생하는 에러
    public static final String USF_INTERNAL_ERROR_CODE_101 = "101"; //조건문이 잘못된 경우
    public static final String USF_INTERNAL_ERROR_CODE_102 = "102"; // ftl 파일에서 에러 발생한 경우, ftl 파일이 없는 경우는 runtime exception이기 때문에 제외
    public static final String USF_INTERNAL_ERROR_CODE_103 = "103"; // 기타 exception

    /**
     * UserContext의 Attribute Name.
     */
    public static final Object USERCONTEXT = "usercontext";

    /**
     * 기본 File Encoding 타입
     */
    public static final String DEFAULT_FILE_ENCODING = "utf-8";

    /**
     * script engine에 등록된 script debug message key이름
     */
    public static final String DEFAULT_JS_DEBUG_MSG_KEYNAME = "JSDebug";

    public static final String CACHE_CLASS_PROPERTY_NAME = "className";

    public static final String FREEMARKER_LOGGER_AUTO = "auto";
    public static final String FREEMARKER_LOGGER_JAVA = "java";
    public static final String FREEMARKER_LOGGER_LOG4J = "log4j";
    public static final String FREEMARKER_LOGGER_AVALON = "avalon";
    public static final String FREEMARKER_LOGGER_NONE = "none";
}